const request = require("../utils/request.js");
exports.getUser = function () {
  return request({
    url: "/user/userId", 
    method: "GET",
  });
};

/**
 * 2. 修改用户信息（对应原setUser）
 * @param {Object} data - 用户修改数据（如nickname/avatar等）
 */
exports.setUser = function (data) {
  return request({
    url: "/user/userId", 
    method: "PUT",
    data: data, 
  });
};

exports.exit = function () {
  return request({
    url: "/user/exit", 
    method: "GET",
  });
};

/**
 * 4. 上传头像（对应原updateAvatar）
 * 注意：上传文件需单独处理（小程序用wx.uploadFile，非普通request）
 * @param {String} filePath - 头像临时文件路径（从wx.chooseImage获取）
 */
exports.updateAvatar = function (filePath) {
  const baseUrl = "http://localhost:8080"; 
  const token = wx.getStorageSync("token");

  return new Promise((resolve, reject) => {
    wx.uploadFile({
      url: baseUrl + "/user/avatar", 
      filePath: filePath,
      name: "file", 
      header: {
        token: token,
        "Content-Type": "multipart/form-data"
      },
      success: (res) => {
        try {
          const resData = JSON.parse(res.data);
          if (resData.code === 200) {
            const fullAvatarUrl = resData.data?.imageUrl || "https://cdn-icons-png.flaticon.com/512/149/149071.png";
            resData.data.avatar = fullAvatarUrl;
          }
          resolve(resData);
        } catch (e) {
          wx.showToast({ title: "头像链接解析失败", icon: "none" });
          reject(new Error("响应格式错误"));
        }
      },
      fail: (err) => {
        wx.showToast({ title: "头像上传失败", icon: "none" });
        reject(err);
      },
    });
  });
};

/**
 * 5. 实名认证（对应原cardVerify）
 * @param {Object} data - 认证信息（如name/idCard等）
 */
exports.cardVerify = function (data) {
  return request({
    url: "/user/cardVerify",
    method: "POST",
    data: data,
  });
};

/**
 * 6. 发送验证码（对应原sendSmsCode）
 * @param {Object} data - 手机号参数（如{ mobile: "13800138000" }）
 */
exports.sendSmsCode = function (data) {
  return request({
    url: "/sendSmsCode",
    method: "POST",
    data: data,
  });
};